/**
 * 
 */
package mm.back.validations;

import java.math.BigDecimal;

import mm.back.entity.DetalleVenta;
import mm.back.entity.Venta;
import mm.exceptions.MMGenericException;

/**
 * @author PUSDERKIS
 *
 */
public class VentaValidator {
	
	public static void ValidarVenta(Venta venta) throws MMGenericException{
		
		if (venta == null){
			throw new NullPointerException("La venta es nula.");
		}
		
		if (venta.getDetalleVenta() == null || venta.getDetalleVenta().isEmpty()){
			throw new MMGenericException("No hay ningun producto asociado a la venta.");
		}
		
		if (venta.getVendedor() == null){
			throw new MMGenericException("No hay ningún vendedor asociado a la venta.");
		}
		
		
		BigDecimal bd = BigDecimal.ZERO;
		for(DetalleVenta dv : venta.getDetalleVenta()){
			if (dv.getCantidad().compareTo(BigDecimal.ZERO) < 1){
				throw new MMGenericException("Se ingreso una canitdad invalida para el producto: "+dv.getProducto().getNombre());
			} else {
				bd = dv.getPrecioVenta().multiply(dv.getCantidad()).add(bd);
			}
			
		}
		if (bd.compareTo(BigDecimal.ZERO) < 1 ){
			throw new MMGenericException("La suma de los productos a vender es: "+bd);
		}
		
	}
}
